<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /**
         *  a++  ++a
         *  1. 都能使a则增1
         *  2. a++ 表达式的值是a自增前的值   ++a，表达式的值是a自增后的值
         * 
         */

        // var a = 1;
        // var b = ++a;
        // console.log(a); // 2
        // console.log(b); // 2

        // var a = 1;
        // var b = a++;
        // console.log(a);// 2
        // console.log(b);// 1


        // var a = 1;
        // var b = ++a + a;
        // console.log(a); // 2
        // console.log(b); // 4

        // var a = 1;
        /**
         * a    2       3
         * 表   2   +   3  + 3
         * 
         */
        // var b = ++a + ++a + a;
        // console.log(a); // 3
        // console.log(b); // 8 

        // var a = 1;
        /**
         *  a   1    2            3
         *  b   1 +  2  + 1 + 2 + 3
         */
        // var b = a + ++a + 1 + a + ++a;
        // console.log(a); // 3
        // console.log(b); // 9

        // var a = 1;
        // var b = a + a + ++a + 1 + a + ++a;// 1 + 1 + 2 + 1 + 2 + 3
        // console.log(a);// 3
        // console.log(b);// 10

        /**
         * a    2     3   4
         * b    1   + 2  +  3  + 1 + 3 + 1
         */
        // var a = 1;
        // var b = a++ + a++ + a + 1 + a++ + 1;
        // console.log(a);// 4
        // console.log(b);// 11

        /***
         *  a    2     3   4
         *  b    1  +  3  + 3 + 3
         */
        // var a = 1;
        // var b = a++ + ++a + a + a++;
        // console.log(a);// 4
        // console.log(b);// 10

        /***
         * a    2     3     4     5    6
         * b    2     2     3     4    5    5    6
         */
        // var a = 1;
        // var b = ++a + a++ + a++ + a + ++a + a++ + a;
        // console.log(a);// 6
        // console.log(b);// 27

        /**
         *  a   0  -1  0   1    2  1 0
         *  b   1   + 0 + -1 + -1 + -1 +  1   + 2  + 2 + 1 + 1 +    1 + 0
         */
        // var a = 1;
        // var b = a-- + a + --a + a + a++ + ++a + ++a + a + --a + a + a-- + a 
        // console.log(a);// 0
        // console.log(b);// 6

        /**
         *  a  2     3    4  5  6  7
         *  b  1  +  2    + 1 + 4   + 4   + 6 + 6 + 7
         */

        // var a = 1;
        // b =   a++ + (a++) + 1 + (++a) + (a++) + (++a) + a + (++a);
        // console.log(a);// 7
        // console.log(b);// 31
        
    </script>
</body>

</html>